package com.cskaoyan.javse.oop2._1extends._1releation;

/**
 * Java继承中两个类的从属关系：
 * 继承中的子类可以完全看成是一个父类，即体现为"is-a"的关系，子类是一个父类(对象)
 *
 * 怎么理解这句话：
 *      1.从代码书写的角度
 *          is-a关系,说明子类对象可以当成父类去使用,于是可以用父类引用指向子类对象
 *      2.从概念角度,从数据类型的概念来说
 *          数据类型: 一组数据和基于数据的操作
 *          引用数据类型: 成员变量的集合 + 成员方法的集合
 *          子类继承父类,得到了父类的所有成员,于是它从数据类型的角度来看,就包含了父类,就可以当成父类去使用
 *      3.直观的角度,逻辑思考的角度:
 *          老师是人,学生也是人,猫是动物,狗是动物等等
 *          当然这个角度不是什么情况都适用,只有简单的逻辑才能处理.
 *          实际开发者,要熟悉业务,根据需求分析决定父子类
 *
 *  从功能角度上来说,子类往往更强大,至少不会比父类弱.所以它当父类使用很正常,
 *  但是父类既然功能更少,不可能直接当成子类去使用,所以父类和子类没有任何关系.
 *
 *
 * @since 15:00
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Father f = new Father();
        Son s = new Son();
        // 用父类引用指向子类对象
        Father fs = new Son();

        // Son s2 = new Father();
    }
}
// 父类
class Father{

}
// 子类
class Son extends Father{

}